package util;

import java.util.Arrays;

public class MyList {
    /**
     * 存元素的容器
     */
    private Object[] arr;
    /**
     * 元素的个数
     */
    private int size;
    //构造方法
    public void ArrayList(int size){
        arr=new Object[size];
    }
    //添加元素
    public boolean add(Object obj){
        //判断是否存的下
        if(size==arr.length){
            //扩大容器容量
            grow();
        }
        arr[size++]=obj;
        return true;
    }

    /**
     * 对容器进行扩容，容量扩大一倍
     */
    private void grow() {
        int newLength=arr.length*2;
        //将原来数组中的元素复制到新数组中
        arr= Arrays.copyOf(arr,newLength);
    }
    /**
     * 根据索引获取元素
     */
    public Object get(int index){
        if(index<0||index>size-1){
            //抛异常
            return null;
        }
        return arr[index];
    }

    /**
     * 扩容器的数量
     */
    public int size(){
        return size;
    }
    /**
     * 将容器中所有元素转换为字符串形式返回
     */
    //查找原有购物的清单方法
    public int search(Object obj) {
        //循环List的下标
        for(int i=0;i<size;i++){
            //判断arr[i]的元素是不是和obj的元素相同
            if(arr[i].equals(obj)){
                return i;
            }

        }
        return -1;
    }
    @Override
    public String toString(){
        String result="";
        for(int i=0;i<size;i++){
            result+=arr[i].toString()+"\n";
        }
        return result;
    }
}

